package com.yilin.platform.entity.wlhy.deserialize;

import java.io.Serializable;
import java.util.List;

/**
 * 运单信息单
 * WLHY_YD1001
 */
public class TmsYD1001 implements Serializable {
    private ActualCarrierInfo actualCarrierInfo;//实际承运人信息
    private String businessTypeCode;//业务类型代码
    private String carrier; //网络货运经营者名称 平台运营组织名称
    private ConsigneeInfo consigneeInfo;//收货人信息
    private String consignmentDateTime;//运单完成时间- yyyyMMddHHmmss
    private ConsignorInfo consignorInfo;//托运人信息
    private String despatchActualDateTime;//发货日期时间- yyyyMMddHHmmss
    private String goodsReceiptDateTime;//收货日期时间- yyyyMMddHHmmss
    private InsuranceInformation insuranceInformation;//保险信息
    private String originalDocumentNumber; //原始单号 发货单号
    private String permitNumber;//道路运输经营许可证编号
    private String remark; //备注（选填）“”
    private String sendToProDateTime; //运单上传时间（new Date）
    private String serialNumber;//分段分单号  一单一车填 0000
    private String shippingNoteNumber;//运单号
    private String totalMonetaryAmount;//运费金额 ######0.000
    private String transportTypeCode;//"1"：公路运输
    private String unifiedSocialCreditIdentifier; //统一社会信用代码
    private String vehicleAmount; //运输总车辆数 1
    private List<VehicleInfo> vehicleInfo;//车辆信息

    public ActualCarrierInfo getActualCarrierInfo() {
        return actualCarrierInfo;
    }

    public void setActualCarrierInfo(ActualCarrierInfo actualCarrierInfo) {
        this.actualCarrierInfo = actualCarrierInfo;
    }

    public String getBusinessTypeCode() {
        return businessTypeCode;
    }

    public void setBusinessTypeCode(String businessTypeCode) {
        this.businessTypeCode = businessTypeCode;
    }

    public String getCarrier() {
        return carrier;
    }

    public void setCarrier(String carrier) {
        this.carrier = carrier;
    }

    public ConsigneeInfo getConsigneeInfo() {
        return consigneeInfo;
    }

    public void setConsigneeInfo(ConsigneeInfo consigneeInfo) {
        this.consigneeInfo = consigneeInfo;
    }

    public String getConsignmentDateTime() {
        return consignmentDateTime;
    }

    public void setConsignmentDateTime(String consignmentDateTime) {
        this.consignmentDateTime = consignmentDateTime;
    }

    public ConsignorInfo getConsignorInfo() {
        return consignorInfo;
    }

    public void setConsignorInfo(ConsignorInfo consignorInfo) {
        this.consignorInfo = consignorInfo;
    }

    public String getDespatchActualDateTime() {
        return despatchActualDateTime;
    }

    public void setDespatchActualDateTime(String despatchActualDateTime) {
        this.despatchActualDateTime = despatchActualDateTime;
    }

    public String getGoodsReceiptDateTime() {
        return goodsReceiptDateTime;
    }

    public void setGoodsReceiptDateTime(String goodsReceiptDateTime) {
        this.goodsReceiptDateTime = goodsReceiptDateTime;
    }

    public InsuranceInformation getInsuranceInformation() {
        return insuranceInformation;
    }

    public void setInsuranceInformation(InsuranceInformation insuranceInformation) {
        this.insuranceInformation = insuranceInformation;
    }

    public String getOriginalDocumentNumber() {
        return originalDocumentNumber;
    }

    public void setOriginalDocumentNumber(String originalDocumentNumber) {
        this.originalDocumentNumber = originalDocumentNumber;
    }

    public String getPermitNumber() {
        return permitNumber;
    }

    public void setPermitNumber(String permitNumber) {
        this.permitNumber = permitNumber;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getSendToProDateTime() {
        return sendToProDateTime;
    }

    public void setSendToProDateTime(String sendToProDateTime) {
        this.sendToProDateTime = sendToProDateTime;
    }

    public String getSerialNumber() {
        return serialNumber;
    }

    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }

    public String getShippingNoteNumber() {
        return shippingNoteNumber;
    }

    public void setShippingNoteNumber(String shippingNoteNumber) {
        this.shippingNoteNumber = shippingNoteNumber;
    }

    public String getTotalMonetaryAmount() {
        return totalMonetaryAmount;
    }

    public void setTotalMonetaryAmount(String totalMonetaryAmount) {
        this.totalMonetaryAmount = totalMonetaryAmount;
    }

    public String getTransportTypeCode() {
        return transportTypeCode;
    }

    public void setTransportTypeCode(String transportTypeCode) {
        this.transportTypeCode = transportTypeCode;
    }

    public String getUnifiedSocialCreditIdentifier() {
        return unifiedSocialCreditIdentifier;
    }

    public void setUnifiedSocialCreditIdentifier(String unifiedSocialCreditIdentifier) {
        this.unifiedSocialCreditIdentifier = unifiedSocialCreditIdentifier;
    }

    public String getVehicleAmount() {
        return vehicleAmount;
    }

    public void setVehicleAmount(String vehicleAmount) {
        this.vehicleAmount = vehicleAmount;
    }

    public List<VehicleInfo> getVehicleInfo() {
        return vehicleInfo;
    }

    public void setVehicleInfo(List<VehicleInfo> vehicleInfo) {
        this.vehicleInfo = vehicleInfo;
    }

    ///内部类 ：实际承运人
    public static class ActualCarrierInfo implements Serializable {
        private String actualCarrierBusinessLicense; //>4.5 道路运输经营许可证号 else 车籍地6位行政区域代码+000000
        private String actualCarrierID;//实际承运人统一社会信用代码 或 证件号码
        private String actualCarrierName;//实际承运人名称

        public String getActualCarrierBusinessLicense() {
            return actualCarrierBusinessLicense;
        }

        public void setActualCarrierBusinessLicense(String actualCarrierBusinessLicense) {
            this.actualCarrierBusinessLicense = actualCarrierBusinessLicense;
        }

        public String getActualCarrierID() {
            return actualCarrierID;
        }

        public void setActualCarrierID(String actualCarrierID) {
            this.actualCarrierID = actualCarrierID;
        }

        public String getActualCarrierName() {
            return actualCarrierName;
        }

        public void setActualCarrierName(String actualCarrierName) {
            this.actualCarrierName = actualCarrierName;
        }
    }

    ///内部类 ：收货人信息
    public static class ConsigneeInfo implements Serializable {
        private String consignee; //收货人名称
        private String consigneeID; //收货方统一社会信用代码或个人证件号码
        private String countrySubdivisionCode;//收货地点的国家行政区划代码或国别代码 wlhy.mot.gov.cn
        private String goodsReceiptPlace;//收货地址

        public String getConsignee() {
            return consignee;
        }

        public void setConsignee(String consignee) {
            this.consignee = consignee;
        }

        public String getConsigneeID() {
            return consigneeID;
        }

        public void setConsigneeID(String consigneeID) {
            this.consigneeID = consigneeID;
        }

        public String getCountrySubdivisionCode() {
            return countrySubdivisionCode;
        }

        public void setCountrySubdivisionCode(String countrySubdivisionCode) {
            this.countrySubdivisionCode = countrySubdivisionCode;
        }

        public String getGoodsReceiptPlace() {
            return goodsReceiptPlace;
        }

        public void setGoodsReceiptPlace(String goodsReceiptPlace) {
            this.goodsReceiptPlace = goodsReceiptPlace;
        }
    }

    ///内部类 ：托运人信息
    public static class ConsignorInfo implements Serializable {
        private String consignor; //托运人名称 公司
        private String consignorID; //托运人统一社会信用代码或个人证件号码
        private String countrySubdivisionCode;//发货地点的国家行政区划代码或国别代码 wlhy.mot.gov.cn
        private String placeOfLoading;//发货地址

        public String getConsignor() {
            return consignor;
        }

        public void setConsignor(String consignor) {
            this.consignor = consignor;
        }

        public String getConsignorID() {
            return consignorID;
        }

        public void setConsignorID(String consignorID) {
            this.consignorID = consignorID;
        }

        public String getCountrySubdivisionCode() {
            return countrySubdivisionCode;
        }

        public void setCountrySubdivisionCode(String countrySubdivisionCode) {
            this.countrySubdivisionCode = countrySubdivisionCode;
        }

        public String getPlaceOfLoading() {
            return placeOfLoading;
        }

        public void setPlaceOfLoading(String placeOfLoading) {
            this.placeOfLoading = placeOfLoading;
        }
    }

    ///内部类 ：保险信息
    public static class InsuranceInformation implements Serializable {
        private String insuranceCompanyCode;//保险公司代码 wlhy.mot.gov.cn
        private String policyNumber;//保险单号

        public String getInsuranceCompanyCode() {
            return insuranceCompanyCode;
        }

        public void setInsuranceCompanyCode(String insuranceCompanyCode) {
            this.insuranceCompanyCode = insuranceCompanyCode;
        }

        public String getPolicyNumber() {
            return policyNumber;
        }

        public void setPolicyNumber(String policyNumber) {
            this.policyNumber = policyNumber;
        }
    }

    ///内部类 ：车辆信息
    public static class VehicleInfo implements Serializable {
        private String despatchActualDateTime;//发货日期时间
        private List<DriverInfo> driver;//司机信息
        private List<GoodsInfo> goodsInfo;//货物信息
        private String goodsReceiptDateTime;//收货日期时间
        private String goodsReceiptPlace;//收货地址
        private String receiptCountrySubdivisionCode;//收货地址的国家行政区划代码或国别代码
        private String placeOfLoading;//装货地址
        private String loadingCountrySubdivisionCode;//装货地址的国家行政区划代码或国别代码
        private String vehicleNumber;//车辆牌照号
        private String vehiclePlateColorCode;//车牌颜色代码 必填，代码集参见wlhy.mot.gov.cn
        private String trailerVehiclePlateNumber;//挂车牌号
        private String trailerVehiclePlateColorCode;//挂车车牌颜色代码，代码集参见wlhy.mot.gov.cn

        public String getTrailerVehiclePlateNumber() {
            return trailerVehiclePlateNumber;
        }

        public void setTrailerVehiclePlateNumber(String trailerVehiclePlateNumber) {
            this.trailerVehiclePlateNumber = trailerVehiclePlateNumber;
        }

        public String getTrailerVehiclePlateColorCode() {
            return trailerVehiclePlateColorCode;
        }

        public void setTrailerVehiclePlateColorCode(String trailerVehiclePlateColorCode) {
            this.trailerVehiclePlateColorCode = trailerVehiclePlateColorCode;
        }

        public String getDespatchActualDateTime() {
            return despatchActualDateTime;
        }

        public void setDespatchActualDateTime(String despatchActualDateTime) {
            this.despatchActualDateTime = despatchActualDateTime;
        }

        public List<DriverInfo> getDriver() {
            return driver;
        }

        public void setDriver(List<DriverInfo> driver) {
            this.driver = driver;
        }

        public List<GoodsInfo> getGoodsInfo() {
            return goodsInfo;
        }

        public void setGoodsInfo(List<GoodsInfo> goodsInfo) {
            this.goodsInfo = goodsInfo;
        }

        public String getGoodsReceiptDateTime() {
            return goodsReceiptDateTime;
        }

        public void setGoodsReceiptDateTime(String goodsReceiptDateTime) {
            this.goodsReceiptDateTime = goodsReceiptDateTime;
        }

        public String getGoodsReceiptPlace() {
            return goodsReceiptPlace;
        }

        public void setGoodsReceiptPlace(String goodsReceiptPlace) {
            this.goodsReceiptPlace = goodsReceiptPlace;
        }

        public String getReceiptCountrySubdivisionCode() {
            return receiptCountrySubdivisionCode;
        }

        public void setReceiptCountrySubdivisionCode(String receiptCountrySubdivisionCode) {
            this.receiptCountrySubdivisionCode = receiptCountrySubdivisionCode;
        }

        public String getPlaceOfLoading() {
            return placeOfLoading;
        }

        public void setPlaceOfLoading(String placeOfLoading) {
            this.placeOfLoading = placeOfLoading;
        }

        public String getLoadingCountrySubdivisionCode() {
            return loadingCountrySubdivisionCode;
        }

        public void setLoadingCountrySubdivisionCode(String loadingCountrySubdivisionCode) {
            this.loadingCountrySubdivisionCode = loadingCountrySubdivisionCode;
        }

        public String getVehicleNumber() {
            return vehicleNumber;
        }

        public void setVehicleNumber(String vehicleNumber) {
            this.vehicleNumber = vehicleNumber;
        }

        public String getVehiclePlateColorCode() {
            return vehiclePlateColorCode;
        }

        public void setVehiclePlateColorCode(String vehiclePlateColorCode) {
            this.vehiclePlateColorCode = vehiclePlateColorCode;
        }

        ///车辆内部类 ：车辆司机信息
        public static class DriverInfo implements Serializable {
            private String driverName;//司机名称
            private String drivingLicense;//驾驶证

            public String getDriverName() {
                return driverName;
            }

            public void setDriverName(String driverName) {
                this.driverName = driverName;
            }

            public String getDrivingLicense() {
                return drivingLicense;
            }

            public void setDrivingLicense(String drivingLicense) {
                this.drivingLicense = drivingLicense;
            }
        }

        ///车辆内部类 ：货物信息
        public static class GoodsInfo implements Serializable {
            private String cargoTypeClassificationCode;//货物类型分类代码
            private String descriptionOfGoods;//货物名称
            //以下三项 毛重 KGM必填 若无值 估值填入
            private String cube;//"1.0000" 体积（选）
            private String goodsItemGrossWeight;//货物项毛重 KGM 0.001
            private String totalNumberOfPackages;// "1" 总件数（选）

            public String getCargoTypeClassificationCode() {
                return cargoTypeClassificationCode;
            }

            public void setCargoTypeClassificationCode(String cargoTypeClassificationCode) {
                this.cargoTypeClassificationCode = cargoTypeClassificationCode;
            }

            public String getDescriptionOfGoods() {
                return descriptionOfGoods;
            }

            public void setDescriptionOfGoods(String descriptionOfGoods) {
                this.descriptionOfGoods = descriptionOfGoods;
            }

            public String getCube() {
                return cube;
            }

            public void setCube(String cube) {
                this.cube = cube;
            }

            public String getGoodsItemGrossWeight() {
                return goodsItemGrossWeight;
            }

            public void setGoodsItemGrossWeight(String goodsItemGrossWeight) {
                this.goodsItemGrossWeight = goodsItemGrossWeight;
            }

            public String getTotalNumberOfPackages() {
                return totalNumberOfPackages;
            }

            public void setTotalNumberOfPackages(String totalNumberOfPackages) {
                this.totalNumberOfPackages = totalNumberOfPackages;
            }
        }
    }
}
